package interfaces;

import java.util.List;
import java.util.Map;

public interface BotObject {
   /**
    * Returns a list of strings to be sent to IRC
    * 
    * @param outputType
    *           Used so the bot object can decide how to format the output
    * @param args
    *           Information used to be able to format the output
    * @return a list with strings to be sent to IRC
    */
   public List<String> getIRCOutput(int outputType, String... args);

   /**
    * Returns a map containing information about the bot object that can be sent via XML-RPC
    * 
    * @param includes
    *           Defines how much of the information available to include in the map
    * @return a map containing information about the bot object that can be sent via XML-RPC
    */
   public Map<String, Object> getRPCOutput(int... includes);

   /**
    * Saves the object to the database
    * 
    * @return true if the object was saved successfully, false otherwise
    */
   public boolean saveToDB();

}
